## Зачем нам code style?

Мы, разработчики, являемся сотрудниками компании, которая платит нам деньги, чтобы мы писали код. 
Код является конечным продуктом нашей работы, и компания, как и любой потребитель, заинтересована в том, чтобы получать качественный продукт за свои деньги. 
Как ответственные сотрудники, мы, со своей стороны, стараемся выпустить продукт нашей работы в наиболее качественном виде. 
**Coding Style** - это набор общепринятых практик, которые, по мнению сообщества, позволяют выпускать объективно качественный код.

Основные критерии качественного кода: работоспособность и гибкость. 
Чтобы компания могла заработать на нашем коде или могла использовать его для собственных нужд, он должен быть работоспособным. 
Также, заказчик в лице компании заинтересован в быстром и дешёвом развитии продукта. 
Мы, разработчики, и так обходимся компании недёшево. 
Чтобы минимизировать издержки компании на развитие продукта, код должен быть гибким, а значит, легко расширяемым и изменяемым. 
Основные общепринятые практики стиля кода направлены на увеличение работоспособности и гибкости продукта.

У каждого из нас есть свой собственный вкус. 
Собственный вкус, не подтверждённый объективно хорошими практиками, является сугубо субъективным и не является подтверждением качества нашего продукта. 
Мы не художники, мы ремесленники. 
А у ремесла есть стандарты качества. 
Навязывать собственный вкус за чужие деньги не является добросовестной практикой, если компания не наняла нас в качестве художников.

Когда разработчик говорит: "Я пишу код, руководствуясь здравым смыслом", он лукавит - каждый считает, что во всех его поступках есть здравое зерно. 
На самом деле, эта фраза должна звучать: "Я пишу код так, как мне хочется".

Существуют амбассадоры стиля кода и разных практик, которые нанимаются компанией в качестве художников с единственной целью продвижения их видения принципов разработки и транслирования его на других сотрудников. 
Если вас наняли на такую должность, вам повезло и нужно максимально использовать этот шанс. 
Остальные же 999 разработчиков из тысячи наняты в качестве ремесленников для решения конкретных бизнес-задач и должны следовать принятому в компании стилю кода.

* [Кредо разработчика](credo.md)
* [Архитектурные решения](architecture.md)
* [Стиль кода](coding-style.md)
* [Правила именования](naming.md)
* [Тестирование](testing.md)
* [Этапы реализации приложения](implementation.md)
* [Код-ревью](code-review.md)
* [Обработка исключений](exceptions.md)
* [Релизный цикл](release-circle.md)
* [Логирование](logging.md)
* [CRUD-операции](crud.md)
* [Базы данных](database.md)